package com.sss.hloster0307;

import java.lang.reflect.*;
import java.util.Scanner;
import java.lang.String;

public class TestArray {

	public static void main(String[] args) {
		test01();
	}

	/**
	 * 操作动态一维数组
	 */
	private static void test01() {

		try {
			Scanner sc = new Scanner(System.in);

			///System.out.println("一步一步来：");
			//String n = sc.next();

			Class<?> c = Class.forName("java.lang.String");
			System.out.println("请输入班级人数：");
			int stuNum = sc.nextInt();
			// 创建长度为 stuNum 的字符串数组
			Object arr = Array.newInstance(c, stuNum);
			System.out.println("请输入需要输入姓名的学生的的学号为：");
			int stuNo = sc.nextInt();
			System.out.println("请输入该学生姓名：");
			String stuName = sc.next();
			// 使用Array类的set方法给数组赋值
			Array.set(arr, (stuNo - 1), stuName);
			// 使用Array类的get方法获取元素的值
			System.out.println("学号为：" + stuNo + "的学生姓名为：" + Array.get(arr, (stuNo - 1)));

		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private static void test02() {
		try {
			Class c = Integer.TYPE;
			// 创建一个 8*10 的二维整形数组
			int dim[] = { 8, 10 };
			Object arr = Array.newInstance(c, dim);
			// arr4 为一维数组
			Object arr4 = Array.get(arr, 4);
			// 给 arr[4][6] 赋值为20
			Array.set(arr4, 6, 20);
			// 获取arr[4][6]的值
			System.out.println("arr[4][6]的值为：" + Array.get(arr4, 6));
		} catch (Exception e) {

			e.printStackTrace();
		}
	}
}
